import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 设置中文字体和解决负号显示问题
plt.rcParams['font.sans-serif'] = ['Songti SC']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.size'] = 12
# 读取Excel文件
df = pd.read_excel('./data/China_GDP_recent20year.xls',
                   header=0)
# 筛选出华北地区的省份
north_china_provinces = ['北京市', '天津市', '河北省',
                         '山西省', '内蒙古自治区']
df_north_china = df[df['地区'].isin(north_china_provinces)]
# 设置索引为“地区”
df_north_china.set_index('地区', inplace=True)
years_to_include = ['Y2005', 'Y2009', 'Y2013',
                                 'Y2017', 'Y2021']
# 从 df_north_china 中筛选出对应的年份列
df_selected_years = df_north_china[years_to_include]
# 创建热图
plt.figure(figsize=(8, 6))
sns.heatmap(df_selected_years, annot=True, fmt="0.1f",
            cmap="YlGnBu", linewidths=0.5,
            xticklabels=['2005年', '2009年',
                             '2013年', '2017年', '2021年'])
# 添加标题和坐标轴标签
plt.title("华北地区GDP热图", fontsize=16)
plt.tight_layout()
plt.ylabel('')
plt.savefig('./Figures/heatmap09-11.png')
# 显示图形
plt.show()
